# 一、封装函数求a, b之间所有奇数的和
def get_sum(a,b):
    total=0
    for i in range(a,b+1):
        if i%2:
            total+=i
    return total

print(get_sum(1,9))

# 二、通过封装求和与求阶乘两个方法实现求 n的阶乘和
def get_sum(n):
    sum=0
    for i in range(1,n+1):
        sum+=get_product(i)
    return sum
def get_product(n):
    product=1
    for i in range(1,n+1):
        product*=i
    return product
print(get_sum(3))

# 三、封装函数：可以判断一个数是否是质数
def get_n(n):
    for i in range(2,n):
        if n%i==0:
            return False
    else:
        return True
print(get_n(9))
print(get_n(7))

# 五、编写函数求start到end以内所有的相差为step的素数对
def Prime_pairs(start,end,step):
    l0=[]
    for i in range(start,end,step):
        for j in range(2,i):
            if i%j==0:
                break
        else:
            if i not in l0:
                l0.append(i)
    for c in l0:
        if c + step in l0:
            print (c, c + step)





print(Prime_pairs(7,1000,8))


# 六、编写函数返回斐波那契数列的第n个数
# 斐波那契数列指的是这样一个数列：
# 1，1，2，3，5，8，13，21，34，55，89...
def fun(n):
    first=1
    second=1
    for i in range(3,n+1):
        i=first+second
        first=second
        second=i
    return i
print(fun(7))

# 七、编写一个函数，接受一个数字n作为参数，
# 该函数可以随机生成n个整数，并返回    所有整数的最大值
def get_n(n,start,end):
    import random
    l0=[]
    for i in range(n):
        r=random.randint(start,end)
        l0.append(r)
    return l0
print(max(get_n(10,10,20)))


# 八、利用冒泡排序，与选择排序 对以下列表排序
#  [1,3,11,5,9,50,61,20]
l0=[1,3,11,5,9,50,61,20]  #[23,38,22,45,23,67,31,15,41]csdn示例
for i in range(len(l0)-1):
    temp=None
    for j in range(len(l0)-i-1):
        if l0[j]>l0[j+1]:
            temp=l0[j]
            l0[j]=l0[j+1]
            l0[j+1]=temp
    print(l0)
print("======================")
print(l0)

# 九.编写学生管理系统，实现增删改查
# 输入数字1，添加学生信息（编号, 名字，年纪，性别）
# 第一个学生id为101 后续学生自动加1
# 输入数字2，查看所有学生信息
# 输入数字3，查看指定学生信息
# 输入学生id，显示对应学生信息
# 输入数字4，修改学生信息
# 输入学生id，输入学生新名字，新年纪，新性别
# 输入数字5，删除指定学生
# 输入学生id，删除指定学生
# 输入数字0，退出系统
l0=[{'id':101,'name':'deng','age':20,'sex':1},
    {'id':102,'name':'zhang','age':24,'sex':0}]
while True:
    n=int(input('请输入一个数：'))
    if n==1:
        l0.append({
                'id':input("请输入编号"),
                'name': input("请输入名字"),
                'age': input('请输入年龄'),
                'sex': input('请输入性别')})
        print(l0)
    elif n==2:
        print(l0)
    elif n==3:
        id=int(input("请输入学生id："))
        for i in range(len(l0)):
            if l0[i]['id']==id:
                print(l0[i])
                break
            else:
                print("id输入错误")
                break
    elif n==4:
        id=int(input("请输入学生id："))
        for i in range(len(l0)):
            if l0[i]['id']==id:
                l0[i]['name']=input('请输入新的名字：')
                l0[i]['age']=input('请输入新的年纪：')
                l0[i]['sex']=input('请输入新的性别')
                print(l0[i])
                print(l0)
                break
            else:
                print("id输入错误")
                break
    elif n==5:
        id = int(input("请输入学生id："))
        for i in range(len(l0)):
            if l0[i]['id'] == id:
                l0.pop(i)
                print(l0)
                break
            else:
                print("id输入错误")
                break
    elif n==0:
        print('exit')
        break
    else:
        print('输入错误')
